#!/bin/bash
# Name:     gen_initrd.sh
# Author:   xiooli
#           Email:  <xioooli[at]yahoo.com.cn>
#           Site:   http://joolix.com
# Licence:  GPLv3
# Version:  091112

# 用于生成 initrd.gz 直接运行,没有参数，如果没有 initrd_dir 的话就
# 创建该目录，有的话就将该目录打包成 initrd.gz
# 需要 gen_init_cpio, arch 上面安装 gen-init-cpio

initrd_dir="./initrd_dir/"
initrd_files="./initrd_files.txt"
out_initrd="./initrd"
bak="./initrd.gz.bak"

if [ ! -d "$initrd_dir" -a -f ./initrd.gz ]; then
	echo "$initrd_dir 目录不存在,创建之..."
	mkdir "$initrd_dir" && cp ./initrd.gz "$initrd_dir" && \
	cd "$initrd_dir" && gunzip ./initrd.gz && \
	echo "为了保持目录的权限，需要用 root 权限." && \
	sudo cpio --no-absolute-filenames -idvm < ./initrd && \
	rm ./initrd && \
	echo "成功创建 initrd_dir 目录，你可以在该目录里面进行修改了。"
else
	echo "打包initrd.gz 中..."
	[ -f ./initrd.gz ] && mv ./initrd.gz "$bak"
	./gen_initramfs_list.sh "$initrd_dir" > "$initrd_files" && \
	gen_init_cpio "$initrd_files" > "$out_initrd" && \
	gzip "$out_initrd"
fi
